package com.qyx.pmpucat.service;

import com.mybatisflex.core.paginate.Page;
import com.qyx.pmpucat.dto.QuestionnaireDTO;
import com.qyx.pmpucat.dto.QuestionnaireListResponseDTO;
import com.qyx.pmpucat.dto.QuestionnaireQueryDTO;
import com.qyx.pmpucat.entity.Questionnaire;
import com.qyx.pmpucat.entity.base.Options;

import java.util.List;

/**
 * 问卷服务接口
 */
public interface QuestionnaireService {
    
    /**
     * 创建问卷
     *
     * @param questionnaireDTO 问卷信息
     * @return 问卷ID
     */
    Long createQuestionnaire(QuestionnaireDTO questionnaireDTO);
    
    /**
     * 更新问卷
     *
     * @param questionnaireDTO 问卷信息
     */
    void updateQuestionnaire(QuestionnaireDTO questionnaireDTO);
    
    /**
     * 删除问卷
     *
     * @param id 问卷ID
     */
    void deleteQuestionnaire(Long id);
    
    /**
     * 获取问卷详情
     *
     * @param id 问卷ID
     * @return 问卷详情
     */
    Questionnaire getQuestionnaireDetail(Long id);
    
    /**
     * 分页查询问卷列表
     *
     * @param queryDTO 查询条件
     * @return 问卷列表
     */
    Page<QuestionnaireListResponseDTO> getQuestionnairePage(QuestionnaireQueryDTO queryDTO);


    List<Options> dropQuestionnaire();
}